INTERBASE a nepotvrzeni zmen v UPDATE

Otázka od: Tomas Bradle

21. 5. 2004 12:11

Zdravim vsechny,

dnes se mi stala zvlastni vec. Zkousim porovnavani dvou BLOBU v triggeru
after insert.

Klasicky:
if (NEW.BFIMAGE = NEW.AFIMAGE) then
  NEW.SAMEIMAGE=1;
 else
  NEW.SAMEIMAGE=0;

Je to trigger nad tabulkou zmen, rekneme CHG_TITULY. Do teto tabulky se
vklada radek z jineho triggeru, ktery monitoruje zmeny v tabulce TITULY.

V urcitych chvilich se mi nepotvrdi zapis do tabulky TITULY, tedy ani do
CHG_TITULY.

Dotaz: Je mozne, ze by chyba v uvedenem kousku kodu v triggeru nad
CHG_TITULY to cele zborila a ani se nevyskytla zadna vyjimka ? Zkratka nic,
ticho po pesine. Uvedeny kousek kodu jsem vymazal z triggeru a vse chodi jak
ma.

diky

Tomas Bradle
t.bradle@worldonline.cz


Odpovedá: Slavomir Skopalik

21. 5. 2004 12:32

Jakou verzi pouzivas, IB6 je plna ruznych chyb, pocatecni FB mel
nekolik problemu s bloby.

 Slavek

> Dotaz: Je mozne, ze by chyba v uvedenem kousku kodu v
> triggeru nad CHG_TITULY to cele zborila a ani se nevyskytla
> zadna vyjimka ? Zkratka nic, ticho po pesine. Uvedeny kousek
> kodu jsem vymazal z triggeru a vse chodi jak ma.
>


Odpovedá: Vladimir Nikel

21. 5. 2004 13:50

nemuze byt problem v null stavu nektere s polozek?

zdravim

vn.


<==============Original message text===============
>Zdravim vsechny,

dnes se mi stala zvlastni vec. Zkousim porovnavani dvou BLOBU v triggeru
after insert.

Klasicky:
if (NEW.BFIMAGE = NEW.AFIMAGE) then
  NEW.SAMEIMAGE=1;
 else
  NEW.SAMEIMAGE=0;

Je to trigger nad tabulkou zmen, rekneme CHG_TITULY. Do teto tabulky se
vklada radek z jineho triggeru, ktery monitoruje zmeny v tabulce TITULY.

V urcitych chvilich se mi nepotvrdi zapis do tabulky TITULY, tedy ani do
CHG_TITULY.

Dotaz: Je mozne, ze by chyba v uvedenem kousku kodu v triggeru nad
CHG_TITULY to cele zborila a ani se nevyskytla zadna vyjimka ? Zkratka nic,
ticho po pesine. Uvedeny kousek kodu jsem vymazal z triggeru a vse chodi jak
ma.

diky

Tomas Bradle
t.bradle@worldonline.cz




Odpovedá: Pavel Cisar

23. 5. 2004 12:21

Haj hou!

On 21 May 2004 at 13:01, Tomas Bradle wrote:

> dnes se mi stala zvlastni vec. Zkousim porovnavani dvou BLOBU v triggeru
> after insert.
>
> Klasicky:
> if (NEW.BFIMAGE = NEW.AFIMAGE) then
> NEW.SAMEIMAGE=1;
> else
> NEW.SAMEIMAGE=0;
>
> Je to trigger nad tabulkou zmen, rekneme CHG_TITULY. Do teto tabulky se
> vklada radek z jineho triggeru, ktery monitoruje zmeny v tabulce TITULY.
>
> V urcitych chvilich se mi nepotvrdi zapis do tabulky TITULY, tedy ani do
> CHG_TITULY.
>
> Dotaz: Je mozne, ze by chyba v uvedenem kousku kodu v triggeru nad
> CHG_TITULY to cele zborila a ani se nevyskytla zadna vyjimka ? Zkratka nic,
> ticho po pesine. Uvedeny kousek kodu jsem vymazal z triggeru a vse chodi jak
> ma.

Mno, nejsem si uplne jist zda porovnavani BLOBu v PSQL je
"officialne" podporovano. Kazdopadne pokud by doslo k chybe, nemelo
by se tak v zadnem pripade dit potichu. Tak nevm   Chybu nelze
nikdy zcela vyloucit, ale pokud nemas jistotu ze takove konstrukce
zpusobuji problemy, da se s tim tezko neco delat.

S pozdravem
Pavel Cisar ( ICQ: 89017288)
Mobil: 724 281429
http://www.ibphoenix.cz
Vse co potrebujete pro Firebird a InterBase


Odpovedá: Tomas Bradle

24. 5. 2004 9:16

Zdravim,

na podnet z konference jsem vyzkousel FB 1.5 a to nepotvrzeni zaznamu
zmizelo, IB 6 ma asi opravdu nejaky "zvlastni" chyby. Nicmene trigger
neukladal informace o shode BFIMAGE a AFIMAGE.

Teprve kdyz jsem upravil nize uvedeny kousek kodu triggeru na:

if (NEW.AFIMAGE = NEW.BFIMAGE) then
  UPDATE CHG_TITULY SET SAMEIMAGE=1 WHERE ID=NEW.ID;
 ELSE
  UPDATE CHG_TITULY SET SAMEIMAGE=0 WHERE ID=NEW.ID;

tak to chodi, jak ma.

Nevi nekdo nahodou proc je potreba UPDATE a nestaci pouhe NEW.SAMEIMAGE=1 ?
Pripadne, jaky je v tom rozdil ?Ja myslel, ze to je jedno.

diky

Tomas Bradle
t.bradle@worldonline.cz



----- Original Message -----
From: "Pavel Cisar" <pcb@atlas.cz>
To: <delphi-l@clexpert.cz>
Sent: Sunday, May 23, 2004 12:31 PM
Subject: Re: INTERBASE a nepotvrzeni zmen v UPDATE


> Haj hou!
>
> On 21 May 2004 at 13:01, Tomas Bradle wrote:
>
> > dnes se mi stala zvlastni vec. Zkousim porovnavani dvou BLOBU v triggeru
> > after insert.
> >
> > Klasicky:
> > if (NEW.BFIMAGE = NEW.AFIMAGE) then
> > NEW.SAMEIMAGE=1;
> > else
> > NEW.SAMEIMAGE=0;
> >
> > Je to trigger nad tabulkou zmen, rekneme CHG_TITULY. Do teto tabulky se
> > vklada radek z jineho triggeru, ktery monitoruje zmeny v tabulce TITULY.
> >
> > V urcitych chvilich se mi nepotvrdi zapis do tabulky TITULY, tedy ani do
> > CHG_TITULY.
> >
> > Dotaz: Je mozne, ze by chyba v uvedenem kousku kodu v triggeru nad
> > CHG_TITULY to cele zborila a ani se nevyskytla zadna vyjimka ? Zkratka
nic,
> > ticho po pesine. Uvedeny kousek kodu jsem vymazal z triggeru a vse chodi
jak
> > ma.
>
> Mno, nejsem si uplne jist zda porovnavani BLOBu v PSQL je
> "officialne" podporovano. Kazdopadne pokud by doslo k chybe, nemelo
> by se tak v zadnem pripade dit potichu. Tak nevm   Chybu nelze
> nikdy zcela vyloucit, ale pokud nemas jistotu ze takove konstrukce
> zpusobuji problemy, da se s tim tezko neco delat.
>
> S pozdravem
> Pavel Cisar ( ICQ: 89017288)
> Mobil: 724 281429
> http://www.ibphoenix.cz
> Vse co potrebujete pro Firebird a InterBase
>
>
>


Odpovedá: Pavel Cisar

24. 5. 2004 10:49

Haj hou!

On 24 May 2004 at 9:47, Tomas Bradle wrote:

> na podnet z konference jsem vyzkousel FB 1.5 a to nepotvrzeni zaznamu
> zmizelo, IB 6 ma asi opravdu nejaky "zvlastni" chyby. Nicmene trigger
> neukladal informace o shode BFIMAGE a AFIMAGE.
>
> Teprve kdyz jsem upravil nize uvedeny kousek kodu triggeru na:
>
> if (NEW.AFIMAGE = NEW.BFIMAGE) then
> UPDATE CHG_TITULY SET SAMEIMAGE=1 WHERE ID=NEW.ID;
> ELSE
> UPDATE CHG_TITULY SET SAMEIMAGE=0 WHERE ID=NEW.ID;
>
> tak to chodi, jak ma.
>
> Nevi nekdo nahodou proc je potreba UPDATE a nestaci pouhe
> NEW.SAMEIMAGE=1 ? Pripadne, jaky je v tom rozdil ?Ja myslel, ze to je
> jedno.

Pokud je trigger BEFORE, pak by mela pouha zmena NEW.* fungovat.
Pokud je trigger AFTER, pak samozrejme nezabere, protoze zmena uz se
provedla.

S pozdravem
Pavel Cisar ( ICQ: 89017288)
Mobil: 724 281429
http://www.ibphoenix.cz
Vse co potrebujete pro Firebird a InterBase


Odpovedá: petr palicka

25. 5. 2004 7:58


> Nevi nekdo nahodou proc je potreba UPDATE a nestaci pouhe NEW.SAMEIMAGE=1 ?
> Pripadne, jaky je v tom rozdil ?Ja myslel, ze to je jedno.

to by ten trigger musel byt BEFORE UPDATE, nikoli AFTER UPDATE!

Peca